TX11 - sfnt ÉLÉÉÉbÉVÉÖÉTÉCÉYÇÃïœçX

(98 îN 4 åé 12 ì˙)

Q: ëÂÇ´Ç» (128K Çí¥Ç¶ÇÈ) sfnt ÉtÉHÉìÉgÇ…ñ‚ëËǙdžÇËÇ‹Ç∑ÅBDZÇÍÇÁÇÃÉtÉHÉìÉgÇégÇ¡ÇΩÉeÉLÉXÉgÇÕ Geneva Ç≈ï\é¶Ç≥ÇÍǃǵNjǧǩÅAëSÇ≠ï\é¶Ç≥ÇÍÇ‹ÇπÇÒÅBDZÇÍDžǬǢǃâΩÇ©å¥àˆÇΔévÇÌÇÍÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÇ©ÅB

A: écîOǻǙÇÁÅAǪÇÃí ÇËÇ≈Ç∑ÅBsfnt ÉäÉ\Å[ÉXÇ™ 128K ÇÊÇËLJëÂÇ´Ç¢ÇΔÅAFontManager ÇÕǪÇÍÇëSïîÉçÅ[ÉhÇπÇ∏ÅA (TrueType ÉXÉPÅ[ÉâÇÃóvãÅÇ…âûÇ∂) ReadPartialResource Ç≈ïîï™Ç≤ÇΔÇ…ÉçÅ[ÉhǵNjÇ∑ÅBTrueType ÉXÉPÅ[ÉâÇÕÅAë¨ìxå¸è„ÇÃÇΩÇflÉtÉHÉìÉgÇÃÉtÉâÉOÉÅÉìÉgÇÉLÉÉÉbÉVÉÖǵNjÇ∑Ç™ÅAÉLÉÉÉbÉVÉÖÇÕÉuÅ[ÉgéûÇ…ÉVÉXÉeÉÄÉqÅ[ÉvÇ…äÑÇËïtÇØÇÁÇÍÇ‹Ç∑ÅBMac OS 8.0 ÇÊÇËëOÇÕÅAÉLÉÉÉbÉVÉÖÉTÉCÉYÇÕ 10K Ç≈ǵÇΩÅBÉLÉÉÉbÉVÉÖÉTÉCÉYÇåàíËǵÇΩìñéûÇà TrueType ÉtÉHÉìÉgÇ…ÇÕǪÇÍÇ≈è\ï™Ç≈ǵÇΩ (ǪǵǃÅATrueType ÉtÉHÉìÉgÇÕ 2MB RAM Çà Macintosh Ç≈LJÉTÉ|Å[ÉgǵÇΩǩǡÇΩÇÃÇ≈Ç∑) ÅBǪÇÃä‘ÅAsfnt ÉtÉHÉìÉgÇÕÇ«ÇÒÇ«ÇÒï°éGÇ…Ç»ÇËÅAÉeÅ[ÉuÉãÇÕÇ«ÇÒÇ«ÇÒëÂÇ´Ç≠Ç»ÇËÅALJÇÕÇ‚ 10K Ç≈ÇÕë´ÇËÇ»Ç≠ǻǡǃǵNjǢNjǵÇΩÅBǪǵǃÅAMac OS 8.0 Ç≈ÉLÉÉÉbÉVÉÖÉTÉCÉYÇÕ 48K Ç…Ç»ÇËNjǵÇΩÅBǵǩǵÅADZÇÍÇ≈LJîÒèÌÇ…ì¡éÍÇ»ÉtÉHÉìÉg (ó·Ç¶ÇŒÅAWorldScript II Ç™ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢǻǢèÍçáÇ…égópÇ∑ÇÈ 2 ÉoÉCÉgÉXÉNÉäÉvÉgóp sfnt ǻǫ) Ç…ÇÕè\ï™Ç≈ÇÕǻǢèÍçáǙdžÇËÇ‹Ç∑ÅBçKÇ¢ÅADZÇÃñ‚ëËÇâåàǵÅAsfnt ÇÃÉtÉâÉOÉÅÉìÉgÉLÉÉÉbÉVÉÖÇÃÉTÉCÉYÇïœçXÇ∑ÇÈï˚ñ@ǙdžÇËÇ‹Ç∑ÅBDZÇÃïœçXÇÕÅAÇ≈Ç´ÇÍÇŒÅAÉVÉXÉeÉÄãNìÆéûÇ…Ç»ÇÈÇ◊Ç≠ëÅÇ≠çsǡǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÃÇΩÇflÅAè¨Ç≥Ç»ÉGÉNÉXÉeÉìÉVÉáÉìÇópà”ǵǃÅAà»â∫ÇÃÉRÅ[ÉhÇ≈ïœçXÇçsǡǃÇ≠ÇæÇ≥Ç¢ÅB

// ÉtÉ@ÉCÉã: FontFix.c
//
// InitializePartialFonts() Ç≈ìKêÿÇ»ÉTÉCÉYÇéwíËÇ∑ÇÈÅB
//
// ÉVÉXÉeÉÄÇà kMinimalPartialFontZoneSize ÇÕ 10 Å~ 1024 ÇæÇ¡ÇΩÇ™ÅA
// ǪÇÍÇ≈ÇÕïsè\ï™ÅB
// PartialFontZone Ç™Ç∑Ç≈Ç…è\ï™Ç…ëÂÇ´Ç¢ÉVÉXÉeÉÄÇ≈ÇÕÅA
// InitializePartialFonts() ÇÕâΩLJǵǻǢÅB
//
// ä˘ë∂Çà PartialFontZone Ç™êVǵǢ kMinimalPartialFontZoneSize ÇÊÇËLJ
// è¨Ç≥Ç¢èÍçá (Ç‹ÇΩÇÕÅAëSÇ≠ǻǢèÍçá) ÇÃÇ›ÅAInitializePartialFonts
// ÉãÅ[É`ÉìÇÕêVǵǢÉTÉCÉYÇäÑÇËìñǃÅAä˘ë∂ÇÃLJÇÃÇ (LJǵdžÇÍÇŒ) îjä¸Ç∑ÇÈÅB

#include <Types.h>#include <ConditionalMacros.h>#include <Resources.h>
enum {  kMinimalPartialFontZoneSize = 0x0000C000,   // 48K
        kMaximalPartialFontZoneSize = 0x00080000    // 512K
        };

extern pascal OSErr InitializePartialFonts (UInt32 partialFontZoneSize)
        THREEWORDINLINE(0x303C, 0x000F, 0xA854);

//-------------------------------------------
void main(void)
{
        UInt32  size = kMinimalPartialFontZoneSize; // default
        Handle  h;

 // Debugger();

    h = GetResource('pfcs', 0);
    if (h != NULL)
        {
        size = **(UInt32**)h;
        if (size < kMinimalPartialFontZoneSize)
            size = kMinimalPartialFontZoneSize;
        else if (size > kMaximalPartialFontZoneSize)
            size = kMaximalPartialFontZoneSize;
        }
    (void)InitializePartialFonts(size);
}

-- Ingrid Kelly
devsupport@apple.com